//要将Whistle抓包工具的请求和响应数据保存到MySQL数据库中，你可以在Whistle的规则脚本中使用Node.js编写代码来实现。以下是一个示例脚本，用于将请求和响应数据保存到MySQL数据库：
// 引入所需的库
const mysql = require('mysql');

// 创建数据库连接
const connection = mysql.createConnection({
  host: 'localhost',
  user: 'your_username',
  password: 'your_password',
  database: 'your_database'
});

// 连接到数据库
connection.connect();

// 处理请求数据
function onRequest(request) {
  // 将请求数据保存到数据库
  connection.query('INSERT INTO requests SET ?', {
    url: request.url,
    method: request.method,
    headers: JSON.stringify(request.headers),
    body: request.body || ''
  }, (error, results) => {
    if (error) {
      console.error('Error saving request:', error);
    } else {
      console.log('Request saved:', results.insertId);
    }
  });
}

// 处理响应数据
function onResponse(request, response) {
  // 将响应数据保存到数据库
  connection.query('INSERT INTO responses SET ?', {
    requestId: request.id,
    statusCode: response.statusCode,
    headers: JSON.stringify(response.headers),
    body: response.body || ''
  }, (error, results) => {
    if (error) {
      console.error('Error saving response:', error);
    } else {
      console.log('Response saved:', results.insertId);
    }
  });
}

// 监听请求和响应事件
module.exports = {
  *beforeSendRequest(request) {
    onRequest(request);
  },
  *beforeSendResponse(request, response) {
    onResponse(request, response);
  }
};